﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Entidades.Seguridad;
using Entidades.Sistema.Base;
using Modelo.Sistema.Base;

namespace VistaOnlineR1._1.Controllers.Sistema.Base
{
    public class LocalidadController : BaseController
    {
        #region campos
        CatalogoLocalidad _catalogoLocalidads;
        #endregion

        #region Constructors
        public LocalidadController()
            : this(new CatalogoLocalidad())
        {
        }

        public LocalidadController(CatalogoLocalidad catalogoLocalidads)
        {
            _catalogoLocalidads = catalogoLocalidads;
        }
        #endregion

        public ActionResult Index()
        {
            List<Perfil> perfiles = RecuperarPerfil();

            ViewBag.PermisoDelete = perfiles.Exists(per => per.Permiso.Nombre == "Delete");
            ViewBag.PermisoCreate = perfiles.Exists(per => per.Permiso.Nombre == "Create");
            ViewBag.PermisoEdit = perfiles.Exists(per => per.Permiso.Nombre == "Edit");

            return View(_catalogoLocalidads.ListarLocalidad());
        }


        [ValidateInput(false)]
        public ActionResult EditLocalidadPartial()
        {
            List<Perfil> perfiles = RecuperarPerfil();

            ViewBag.PermisoDelete = perfiles.Exists(per => per.Permiso.Nombre == "Delete");
            ViewBag.PermisoCreate = perfiles.Exists(per => per.Permiso.Nombre == "Create");
            ViewBag.PermisoEdit = perfiles.Exists(per => per.Permiso.Nombre == "Edit");

            return PartialView("EditLocalidadPartial", _catalogoLocalidads.ListarLocalidad());
        }

        //[HttpPost, ValidateInput(false)]
        //public ActionResult EditLocalidadAddNewPartial(Localidad Localidad)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        try
        //        {
        //            _catalogoLocalidads.AgregarLocalidad(Localidad);
        //        }
        //        catch (Exception e)
        //        {
        //            ViewData["EditError"] = e.Message;
        //        }
        //    }
        //    else
        //        ViewData["EditError"] = "Por Favor, modifica los errores.";

        //    List<Perfil> perfiles = RecuperarPerfil();

        //    ViewBag.PermisoDelete = perfiles.Exists(per => per.Permiso.Nombre == "Delete");
        //    ViewBag.PermisoCreate = perfiles.Exists(per => per.Permiso.Nombre == "Create");
        //    ViewBag.PermisoEdit = perfiles.Exists(per => per.Permiso.Nombre == "Edit");

        //    return PartialView("EditLocalidadsPartial", _catalogoLocalidads.ListarLocalidad());
        //}
        //[HttpPost, ValidateInput(false)]
        //public ActionResult EditLocalidadsUpdatePartial(Localidad Localidad)
        //{

        //    if (ModelState.IsValid)
        //    {
        //        try
        //        {
        //            _catalogoLocalidads.ModificarLocalidad(Localidad);
        //        }
        //        catch (Exception e)
        //        {
        //            ViewData["EditError"] = e.Message;
        //        }
        //    }
        //    else
        //        ViewData["EditError"] = "Por Favor, modifica los errores.";

        //    List<Perfil> perfiles = RecuperarPerfil();

        //    ViewBag.PermisoDelete = perfiles.Exists(per => per.Permiso.Nombre == "Delete");
        //    ViewBag.PermisoCreate = perfiles.Exists(per => per.Permiso.Nombre == "Create");
        //    ViewBag.PermisoEdit = perfiles.Exists(per => per.Permiso.Nombre == "Edit");

        //    return PartialView("EditLocalidadsPartial", _catalogoLocalidads.ListarLocalidad());
        //}
        //[HttpPost, ValidateInput(false)]
        //public ActionResult EditLocalidadsDeletePartial(int IdLocalidad)
        //{
        //    if (IdLocalidad >= 0)
        //    {
        //        try
        //        {
        //            _catalogoLocalidads.EliminarLocalidad(_catalogoLocalidads.BuscarLocalidad(IdLocalidad));
        //        }
        //        catch (Exception e)
        //        {
        //            ViewData["EditError"] = e.Message;
        //        }
        //    }

        //    List<Perfil> perfiles = RecuperarPerfil();

        //    ViewBag.PermisoDelete = perfiles.Exists(per => per.Permiso.Nombre == "Delete");
        //    ViewBag.PermisoCreate = perfiles.Exists(per => per.Permiso.Nombre == "Create");
        //    ViewBag.PermisoEdit = perfiles.Exists(per => per.Permiso.Nombre == "Edit");

        //    return PartialView("EditLocalidadsPartial", _catalogoLocalidads.ListarLocalidad());
        //}

    }
}
